/**
 * 根据正常范围和实际值生成图表的显示值范围
 * @param min 正常范围的最小值
 * @param max 正常范围的最大值
 * @param actualValue 实际值
 * @returns 图表显示值范围
 */
export function generateChartValueRange(
  min: number,
  max: number,
  value: number
) {
  const minNumVal = Number(min);
  const maxNumVal = Number(max);
  const numVal = Number(value);
  const normalMin = isNaN(minNumVal) ? 0 : minNumVal;
  const normalMax = isNaN(maxNumVal) ? 0 : maxNumVal;
  const acNumVal = isNaN(numVal) ? (normalMin + normalMax) / 2 : numVal;
  // 默认生成 正常范围边界的 2 倍范围值，但是不能小于最左侧值的 x%，不能大于最右侧值的 x%
  const ratio = 2;
  const minValue = Math.min(normalMin / ratio, acNumVal * 0.8);
  const maxValue = Math.max(normalMax * ratio, acNumVal * 1.2);
  // const minValue = Math.min(min, acNumVal) * 0.5;
  // const maxValue = Math.max(max, acNumVal) * 1.5;
  return {
    min: minValue,
    max: maxValue,
    normalMin,
    normalMax,
    value: acNumVal
  };
}
